package com.example.yangguoying.util.JDBC.APIInterface;


import java.sql.ResultSet;
import java.util.Map;

/**
 * JDBCUtil接口，定义增删改查方法
 *
 * */
public interface JDBCUtil {
    /**
     * 插入数据
     * insertData(String sql,Object[] params)
     @param sql :传入的SQL语句（insert into [table] values (name=?,pawssword=?)）,其中?是变量占位符，通过另一个参数传入
     @param params :传入一个Object数组，里面为占位符?的具体值，需按照顺序传入。（ Object[] obj = {"姓名","密码"};）,如果没有占位符，则传入null
      * @return 返回类型：int，大于零的数表示插入成功，0表示插入失败
     * */
    int insertData(String sql,Object[] params);
    /**
     * 插入数据
     @param sql :传入的SQL语句（delete [表名] where id=?）,其中?是变量占位符，通过另一个参数传入
     @param params :传入一个Object数组，里面为占位符?的具体值，需按照顺序传入。（ Object[] obj = {1};）,如果没有占位符，则传入null
      * @return 返回类型：int，大于零的数表示删除成功，0表示删除失败
     * */
    int deleteData(String sql,Object[] params);
    /**
     * 修改数据
     @param sql :传入的SQL语句（update [table] set id=? where id=?）,其中?是变量占位符，通过另一个参数传入
     @param params :传入一个Object数组，里面为占位符?的具体值，需按照顺序传入。（ Object[] obj = {"03","04"};）,如果没有占位符，则传入null
      * @return 返回类型：int，大于零的数表示修改成功，0表示修改失败
     * */
    int updtateData(String sql,Object[] params);
    /**
     * 查询数据
     @param sql :传入的SQL语句（select name from [teble] where id=?）
     @param params :传入一个Object数组，里面为占位符?的具体值，需按照顺序传入。（ Object[] obj = {1};）,如果没有占位符，则传入null
      * @return 返回类型：ResultSet
     * */
    ResultSet queryData(String sql, Object[] params);
    /**
     * 查询数据
     @param sql :传入的SQL语句（select name from [teble] where id=?）,其中?是变量占位符，通过另一个参数传入
     @param params :传入一个Object数组，里面为占位符?的具体值，需按照顺序传入。（ Object[] obj = {1};）,如果没有占位符，则传入null
      * @return 返回类型：String类型的json字符串
     * */
    String queryToString(String sql,Object[] params);
    /**
     * 查询数据
     @param sql :传入的SQL语句（insert into [table] values (name=?,pawssword=?)）,其中?是变量占位符，通过另一个参数传入
     @param params :传入一个Object数组，里面为占位符?的具体值，需按照顺序传入。（ Object[] obj = {1};）,如果没有占位符，则传入null
      * @return 返回类型：Map集合
     * */
    Map<Object,Object> queryToMap(String sql, Object[] params);

}
